Presentation: Tweet"Java for safety critical embedded hard-real-time systems"
With its write once - run anywhere approach Java has become one of the most popular programming languages on earth and it is now used for programming everything from toasters to supercomputers.
However, Java in its traditional form is unsuited for safety critical embedded hard-real-time systems, partly due its use of garbage collection, partly due to the fact that Java lacks the notion of a deadline and high resolution real-time clocks.
To address this The Real-Time Specification for Java (RTSJ) was initiated as the first Java Specification Request (JSR-001) to enter the Java Community Process. RTSJ brought the discipline and structure of object-oriented programming to real-time systems more than a decade ago.
However, in some respects RTSJ was too general and tried to cater for too many subfields of real-time programming. Therefore industry and academia embarked on defining leaner profiles, such as the Ravenscar and Predictable Java Profiles, for safety critical software. An expert groups was formed and the Java community, through JSR 302, has made tremendous progress towards providing support for programming safety critical embedded hard-real-time systems and an important step has been taken with the upcoming Safety Critical Java (SCJ) standard. There are now several experimental, open source and even commercial implementations supporting the upcoming SCJ standard and many tools and techniques for analysis of SCJ programs have been put forward. The technologies are now so mature that several commercial project have started to use them. The InfinIT working group on high level languages in embedded systems has over the yeas been active in this area, both in terms of developing tools and technologies and in terms of promoting the use of Java for safety critical embedded hard-real-time systems for use by Danish Industry.
In this talk we will present a general overview of tools and technologies for Java for safety critical embedded hard-real-time systems and give specific examples from the work done within the InfinIT working group on high level languages in embedded systems.
Download slides